const ESLintPlugin = require('eslint-webpack-plugin');// 导入ESLint插件
const {resolve} = require('path'); // path模块是Node内置的
// __dirname：当前配置文件所在的目录绝对路径
// resolve: 用来拼接路径的函数

// 暴露配置对象
module.exports = {
    // 入口
    entry: './src/main.js',
  
    // 出口
    output: {
        path: resolve(__dirname, 'build'), // 打包文件所在的根目录
        filename: 'js/bundle.js', // 打包生成的js文件名(可以带目录)
        clean: true, // 打包时, 会先自动清空打包文件夹
    },
   
    module: {
        rules: [
          	// 配置 css 文件处理
            {
                test: /\.css$/, // 处理css文件
                use: [
                    "style-loader",		// 将 CSS 生成 style 标签插入 HTML 中
                    "css-loader"  		// 将 CSS 转为 CommonJS 的模块
                ]
            } ,
            {
                test: /\.less$/, // 处理less文件
                use: [
                    'style-loader', // 将 CSS 生成 style 标签插入 HTML 中
                    'css-loader', // 将 CSS 转为 CommonJS 的模块
                    'less-loader' // 将Less编译为CSS
                ]
            }, 
            			//配置 babel 的 loader
                        {
                            test: /\.js$/,
                            exclude: /node_modules/, // 不进行处理的文件夹
                            use: {
                                loader: 'babel-loader',
                                options: {
                                    presets: [
                                        // '@babel/preset-env'
                                        [
                                            '@babel/preset-env',
                                            {
                                              useBuiltIns: 'usage', // 只打包使用的ES6新API的实现代码
                                              corejs: { version: 2 } // 指定core-js的版本号为2
                                            }
                                          ]
                                    ], // 指定bebel预设包
                                                      plugins: [], // 指定babel插件包
                                }
                            }
                        },
        ]


    },

     // 模式
  	// mode: 'production',
    mode: 'development',

    // 配置进行ESlint检查的插件
  	plugins: [
        new ESLintPlugin()
    ]

   
}